9月 7 2017 Online Judge►LeetCode [LeetCode] 560 - Subarray Sum Equals K 題意找出陣列中子陣列和為 K 的次數。 解法假設 sum(i) 為第一個元素至第 i 個元素的總和。 若 sum(j) + k = sum(i),則代表從 j+1 ~ i 的和也就是 sum(i) - sum(j) 為 k 。 程式123456789101112131415161718/** * @param {number[]} nums * @param {number} k * @return {number} */var subarraySum = function(nums, k) { let map = { 0 : 1 }; let sum = 0; let count = 0; nums.forEach((num) => { sum += num; if ( map[sum-k] ) { count += map[sum-k]; } map[sum] = map[sum] === undefined ? 1 : map[sum] + 1; }) return count;}; Newer [LeetCode] 515 - Find Largest Value in Each Tree Row Older [LeetCode] 647 - Palindromic Substrings